#include <stdio.h>
#include <stdlib.h>

int main(int argc, char const *argv[])
{
    FILE *pipein_fp, *pipeout_fp;
    char readbuf[80];

    if(( pipein_fp = popen("ls", "r")) == NULL) { // 建立一个通向ls的读管道
        perror("popen");
        exit(1);
    }

    if((pipeout_fp = popen("sort", "w")) == NULL) {
        perror("popen");
        exit(1);
    }

    while (fgets(readbuf, 80, pipein_fp)) // 把ls的输出暂时存在管道中，使用fgets读取管道中的文件流(stream)
    {
        fputs(readbuf, pipeout_fp);
    }
    
    pclose(pipein_fp);
    pclose(pipeout_fp);

    return 0;
}
